package assist.domain.model;

import java.io.Serializable;



import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.NotPersistent;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;


@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = "true")
//@Inheritance(strategy = InheritanceStrategy.SUBCLASS_TABLE)
public abstract class Event implements Serializable
{    
    @NotPersistent
    private static final long serialVersionUID = 1L;
    @PrimaryKey
   // @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Long key;
    @Persistent
    private GameTime gameTime;
    @Persistent
    private String gameId;
    @Persistent
    private String strength;
    @Persistent
    private String teamId;
    
    public Event() {}

    public Event(final String gameId, final GameTime gameTime)
    {
        this.setGameId(gameId);
        this.setGameTime(gameTime);
    }

    /**
     * @param gameTime the gameTime to set
     */
    public void setGameTime(final GameTime gameTime)
    {
        this.gameTime = gameTime;
    }

    /**
     * @return the gameTime
     */
    public GameTime getGameTime()
    {
        return this.gameTime;
    }

    /**
     * @param gameId the gameId to set
     */
    public void setGameId(final String gameId)
    {
        this.gameId = gameId;
    }

    /**
     * @return the gameId
     */
    public String getGameId()
    {
        return this.gameId;
    }

    /**
     * @param key the key to set
     */
    public void setKey(final Long key)
    {
        this.key = key;
    }

    /**
     * @return the key
     */
    public Long getKey()
    {
        return key;
    }

    public void setStrength(String strength)
    {
       this.strength = strength;
    }

    public void setTeamId(String teamId)
    {
        this.teamId = teamId;
    }
    
    public String getStrength()
    {
       return this.strength;
    }

    public String getTeamId()
    {
        return this.teamId;
    }    
}
